/* test_plot.cpp */

#include <iostream>
#include <string>
#include <cmath>
#include <dodo_plot/dodo_plot.h>
#include <dodo_plot/widget/plot.h>
#include <dodo_plot/widget/axis.h>
#include <dodo_plot/widget/blank.h>

using namespace std;
using namespace dodo_plot;
using namespace dodo_plot::color_name;

int main(int argc, char *argv[])
{
	int N = 100;
	vector<double> data(N);
	vector<int> x(N);
//
//	cout << "live after create data" << endl;
//
	for(int i = 0; i < N; ++i)
	{
		x[i] = i;
		data[i] = sin(i / 10.0);
	}

	Plot plot(x.begin(), x.end(), data.begin(), 20, 80, -2.0, 0.9);
	plot.set_line_color(BLUE);
	plot.set_line_width(2.0);
	Axis b_axis(20, 80, 10, 0, 4, BOTTOM);
	Axis l_axis(-2.0, 0.9, 0.5, 0, 4, LEFT);

//
//	cout << "live after assign" << endl;
//
//        Linear_2d_Projector<double, double> 
//                        x_y_range(
//                                0, 99,
//                                -1, 1
//                            );
//
//        Plot<double, double, Linear_2d_Projector<double, double> >
//                        plot(
//                                x, data,
//                                x_y_range
//                            );
//
//	cout << "live after create plot" << endl;
//
	Blank blank(800, 600);
	Picture final = blank + frame((l_axis | plot) & b_axis, 600, 400);


	Canvas canvas;

	canvas.draw(final);
	canvas.write_png("plot.png");
//
//	cout << "live after draw" << endl;
//
	return 0;
}

